home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dbase / dbpass10.zip / PASSEDIT.PRG < prev   
Text File  |  1992-03-11  |  3KB  |  125 lines

  1. **************************************************************************
  2. *   Name........: PASSEDIT.PRG                                           *
  3. *   Purpose.....: Change password.                                       *
  4. *   Date........: 11/03/92                                               *
  5. *   By..........: Frederico Terenas    E-mail: cs_a264@Kingston.ac.uk    *
  6. **************************************************************************
  7.  
  8. PROCEDURE PASSEDIT
  9.  
  10. * To change the password, you must know the current password
  11.  
  12. PRIVATE ALL
  13.  
  14. ENC_FACTOR = 1200
  15.  
  16. SET SAFETY OFF                 
  17.  
  18. RESTORE FROM CHAVE ADDITIVE                       && restores current password
  19.  
  20. DEFINE WINDOW GET_PWD FROM 8,22 TO 14,55 DOUBLE COLOR ,,GR+/G
  21.                                 
  22. ACTIVATE WINDOW GET_PWD
  23.  
  24. @ 0,8 SAY "Change Password"
  25. @ 1,0 SAY REPL(CHR(196) ,32)
  26.  
  27. SET COLOR OF FIELDS TO RB/RB       && bg color = fg color
  28.  
  29. curr = SPACE(10)
  30. @ 2,2 SAY "Your password:"
  31. @ 2,20 GET curr PICTURE "XXXXXXXXXX"
  32. READ
  33. OK = .T.
  34. currlen = LEN(RTRIM(curr))
  35.  
  36.     IF Length1 <> currlen                      && Length1 from file
  37.         OK = .F.
  38.     ELSE
  39.         Counter = 1
  40.         DO WHILE (Counter <= Length1) .AND. OK
  41.             IF ASC(SUBSTR(CURR,Counter,1)) + ENC_FACTOR <> (Password[Counter])
  42.                 OK = .F.
  43.             ELSE
  44.                 Counter = Counter + 1
  45.             ENDIF
  46.         ENDDO
  47.     ENDIF
  48.  
  49.  
  50. IF OK
  51.  
  52.     DECLARE Password[10]
  53.     Pass = SPACE(10)
  54.     Length1 = 0
  55.     Counter = 1
  56.  
  57.     @ 3,2 SAY "New password:"
  58.     @ 3,20 GET Pass PICTURE "XXXXXXXXXX"
  59.     READ
  60.  
  61.     Length1 = LEN(RTRIM(Pass))
  62.  
  63.     DO WHILE Counter <= Length1
  64.         Password[Counter] = ASC(SUBSTR(Pass,Counter,1)) + ENC_FACTOR
  65.         Counter = Counter + 1
  66.     ENDDO
  67.  
  68.     Length2 = 0
  69.  
  70.     PASS = SPACE(10)
  71.  
  72.     Counter = 1
  73.     OK = .T.
  74.  
  75.     @ 4,2 SAY "Again:"
  76.     @ 4,20 GET Pass PICTURE "XXXXXXXXXX"
  77.     READ
  78.  
  79.  
  80. DEACTIVATE WINDOW GET_PWD
  81.  
  82.     Length2 = LEN(RTRIM(Pass))
  83.  
  84.     IF Length1 <> Length2
  85.         OK = .F.
  86.     ELSE
  87.         DO WHILE (Counter <= Length1) .AND. OK
  88.             IF ASC(SUBSTR(Pass,Counter,1)) + ENC_FACTOR <> (Password[Counter])
  89.                 OK = .F.
  90.             ELSE
  91.                 Counter = Counter + 1
  92.             ENDIF
  93.        ENDDO
  94.     ENDIF
  95.  
  96.     SET CURSOR OFF
  97.  
  98.     IF OK
  99.  
  100.       IF Length1 = 0
  101.           PASSWORD[1] = 0
  102.       ENDIF
  103.  
  104.       SAVE TO CHAVE ALL EXCEPT PASS
  105.        @ 16,29 TO 18,49 DOUBLE COLOR G/B
  106.        @ 17,31 SAY "Password changed!" 
  107.        Espere = INKEY(3)
  108.     ELSE
  109.        @ 16,30 TO 19,49 DOUBLE COLOR R/B
  110.        @ 17,32 SAY "Invalid password"
  111.        @ 18,34 SAY "NOT CHANGED! "
  112.        Espere = INKEY(3)
  113.     ENDIF
  114.     RELEASE ALL                             && restore memory
  115.     SET CURSOR ON
  116. ELSE
  117.    @ 3,8 SAY "WRONG PASSWORD"
  118.    A = INKEY(2)
  119.    DEACTIVATE WINDOW GET_PWD
  120.    RETURN
  121. ENDIF
  122.  
  123.  
  124. RETURN                                      && from PASSEDIT
  125.